﻿namespace _1Homework08
{
    /// <summary>
    /// 第一行一颗星，第二行三颗星，以此类推，输出一个N（用户输入）行的等边三角形
    /// </summary>
    internal class Program
    {
        static void Main(string[] args)
        {
            //用户输入行数N
            Console.Write("请输入行数N：");

            //读取用户输入并转换为整数
            if (int.TryParse(Console.ReadLine(), out int N) && N > 0)
            {
                //计算最大宽度，即最后一行星号数量
                int maxwidth = 2 * N - 1;

                //使用循环输出等边三角形
                for (int i = 1; i <= N; i++)
                {
                    //计算当前行星号数量
                    int stars = 2 * i - 1;

                    //计算当前行前面的空格数量
                    int blankspace = (maxwidth - stars) / 2;

                    //输出前面的空格
                    for (int j = 0; j <= blankspace; j++)
                    {
                        Console.Write(" ");
                    }

                    //输出星号
                    for (int k = 0; k < stars; k++)
                    {
                        Console.Write("*");
                    }

                    //换行
                    Console.WriteLine();
                }
            }
            else
            {
                //输入无效，请重新输入一个正确的整数
                Console.WriteLine("输入无效，请重新输入正确的正整数！");
            }
        }
    }
}
